package com.dd.cloud.user.DTO.km;

import com.dd.cloud.common.utils.CodecUtils;
import lombok.Data;

/**
 * 请求头
 *
 * @author Lx
 * @version 1.0
 */
@Data
public class SendPresHeadDTO {
    /**
     * 公司编号
     */
    private String company_num = "11607";

    /**
     * 毫秒数
     */
    private Long key;

    /**
     * 认证签名 Md5(saveOrderInfo+时间+psw) 接口名+时间+密码 进行md5加密 （时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。psw为md5加密后的小写字符串）
     */
    private String sign;

    /**
     * 方法名称
     */
    private String methodName;

    public SendPresHeadDTO(String methodName) {
        this.methodName = methodName;
    }

    /**
     * 生成签名
     *
     * @param encryptyKey
     */
    public void generateSign(String encryptyKey) {
        if (key == null) {
            key = System.currentTimeMillis();
        }
        String psw = CodecUtils.md5Hex(encryptyKey);
        sign = CodecUtils.md5Hex(this.methodName + this.key + psw);
    }
}
